const path = require('path');

function resolve(dir) {
	//此处使用path.resolve 或path.join 可自行调整
	return path.join(__dirname, dir)
}

module.exports = {
	/* 部署应用包的基本URL */
	/* baseUrl 从 Vue CLI 3.3 起已弃用 ，请使用publicPath */
	publicPath: process.env.NODE_ENV === "production" ? "./" : "./",
	/* 生产环境构建文件的目录 defalut: dist */
	outputDir: "dist",
	/* 放置生成的静态文件目录（js css img） */

	assetsDir: "static",

	/* 指定生成的index.html 输出路径 相对 default: index.html */

	indexPath: "index.html",

	/* 指定生成文件名中包含hash default: true */

	filenameHashing: true,

	/* 是否保存时 lint 代码 */

	lintOnSave: process.env.NODE_ENV === "production",

	/* 是否使用编译器 default: false */

	runtimeCompiler: false,

	/* 默认babel-loader会忽略node_modules中的文件，你想显示的话在这个选项中列出来 */

	// transpileDependencies: [],

	/* 生产环境的source map */

	productionSourceMap: true,

	// crossorigin: "",
	integrity: false,
	chainWebpack: config => {
        // 配置别名
		config.resolve.alias
			// key,value自行定义，比如.set('@assets', resolve('src/assets'))
			// .set("vue$",'vue/dist/vue.esm.js')
			.set('@', resolve('src'))
			.set('assets', resolve('src/assets'))
			.set('components', resolve('src/components'))
			.set('views', resolve('src/views'))
			.set('api', resolve('src/api'))
			.set('utils', resolve('src/utils'));
		// 配置svg-svg是个基础loader
			const svgRule = config.module.rule("svg");
			svgRule.uses.clear();
			svgRule.use("svg-sprite-loader").loader("svg-sprite-loader").options({
				symbolId: "icon-[name]",
				include: ["./src/icons"]
			});
	},
	// css相关配置

	css: {
		// 是否使用css分离插件 ExtractTextPlugin

		extract: true,

		// 开启 CSS source maps?

		sourceMap: false,

		// css预设器配置项

		loaderOptions: {
			// 配置全局样式
			sass: {
				prependData: `@import "./src/styles/main.scss";`
			}
		},

		// 启用 CSS modules for all css / pre-processor files.

		modules: false
	},

	devServer: {
	  open: false, // 编译完成是否打开网页
	  host: '0.0.0.0', // 指定使用地址，默认localhost,0.0.0.0代表可以被外界访问
	  port: 8080, // 访问端口
	  https: false, // 编译失败时刷新页面
	  hot: true, // 开启热加载
	  hotOnly: false,
	  proxy: {
	    [process.env.VUE_APP_API]: {
	        target: process.env.VUE_APP_TARGET, //API服务器的地址
	         ws:false,    //websockt
	        changeOrigin: true,
	        pathRewrite: {
				[`^${process.env.VUE_APP_API}`]: '', //查找开头为/devApi字符替换成空字符串
	        }
	    }
	  }
	}
};
